package com.etc.mapper;

import com.etc.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @program: RookieSocialNetworking02
 *
 * @description: 用户持久层接口
 *
 * @author: 梁伟文
 *
 * @create: 2020-08-14 20:13
 **/
public interface IUserDao {
    /**
     * 根据名字查询用户  用于登录
     * @param user 用户对象
     * @return 用户对象
     */
    User queryUserByNameAndPwd(User user);

    /**
     * 保存用户  用于注册
     * @param user 用户对象
     * @return 数据库受影响行数
     */
    Integer saveUser(User user);

    /**
     * 根据用户名查询用户
     * @param name 用户名
     * @return 用户对象
     */
    User queryUserByName(String name);

    /**
     * 根据手机号码查询用户
     * @param phone 手机号
     * @return 用户对象
     */
    User queryUserByTelephone(String phone);

    /**
     * 修改用户信息
     * @param user 用户对象
     * @return
     */
    Integer updateUser(User user);

    /**
     * 查询未添加的好友
     * @return
     */
    List<User> queryNotAddUser(@Param("friendIds") List<Integer> friendIds);

    /**
     * 模糊查询未添加的好友
     * @return
     */
    List<User> queryNotAddUserByNameOrTel(@Param("friendIds") List<Integer> friendIds,@Param("user") User user);

    /**
     * 查询所有用户
     */
    List<User> queryAllUsers();
    /**
     * 根据用户名模糊查询
     * @author gyx
     */
    List<User> queryByLike(@Param("userName") String userName);

    /**
     * 增加用户(管理员给用户开户)
     * @param user
     */
    int addUser(User user);

    /**
     * 修改用户状态----禁用/启用
     * @param userId
     * @return
     */
    int logoutUser(@Param("userId") int userId);//禁用--状态为0
    int startUser(@Param("userId") int userId);//启用--状态为1
}
